home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / share / doc / libgcrypt11 / TODO < prev   
Text File  |  2008-04-18  |  4KB  |  104 lines

  1. What's left to do                                 -*- outline -*-
  2.  
  3. * Next API break:
  4. ** gcry_ac_io_t
  5.   Remove use of anonymous union.
  6. ** gcry_ac
  7.   Consider to remove it.
  8.  
  9. * udiv-qrnbd.o should get build as *.lo [HPUX]
  10.  
  11. * Allow operation using RSA keys consisting of the OpenSSL keys.
  12.   This requires the introduction of a parameter names (say) U which
  13.   is calculated according to OpenSSL/PKCS#1 rules.
  14.  
  15. * Add a warning to the manual, to check that libgcrypt actually has
  16.   been compiled with thread support when used by a threaded
  17.   application.
  18.  
  19. * linker script test
  20.   Write an autoconf test to check whether the linker supports a
  21.   version script. 
  22.  
  23. * Add attributes to the MPI functions.
  24.  
  25. * cipher/pubkey.c and pubkey implementaions.
  26.   Don't rely on the secure memory based wiping function but add an
  27.   extra wiping.
  28.   
  29. * update/improve documentation
  30. ** it's outdated for e.g. gcry_pk_algo_info.
  31. ** document algorithm capabilities
  32. ** Init requirements for random
  33.    The documentation says in "Controlling the library" that some
  34.    functions can only be used at initialization time, but it does not
  35.    explain what that means.  Initialization is a multi-step procedure:
  36.    First the thread callbacks have to be set up (optional), then the
  37.    gcry_check_version() function must be called (mandatory), then
  38.    further functions can be used.
  39.  
  40.    The manual also says that something happens when the seed file is
  41.    registered berfore the PRNG is initialized, but it does not say how
  42.    one can guarantee to call it early enough.
  43.  
  44.    Suggested fix: Specify initialization time as the time after
  45.    gcry_check_version and before calling any other function except
  46.    gcry_control().
  47.  
  48.    All functions which modify global state without a lock must be
  49.    documented as "can only be called during initialization time" (but
  50.    see item 1).  Then the extraneous calls to _gcry_random_initialize
  51.    in gcry_control() can be removed, and the comments "not thread
  52.    safe" in various initialization-time-only functions like
  53.    _gcry_use_random_daemon become superfluous.
  54.  
  55. * Use builtin bit functions of gcc 3.4
  56.  
  57. * Consider using a daemon to maintain the random pool
  58.   [Partly done] The down side of this is that we can't assume that the
  59.   random has has always been stored in "secure memory".  And we rely
  60.   on that sniffing of Unix domain sockets is not possible.  We can
  61.   implement this simply by detecting a special prefixed random seed
  62.   name and divert in this case to the daemon.  There are several
  63.   benefits with such an approach: We keep the state of the RNG over
  64.   invocations of libgcrypt based applications, don't need time
  65.   consuming initialization of the pool and in case the entropy
  66.   collectros need to run that bunch of Unix utilities we don't waste
  67.   their precious results.
  68.  
  69. * Out of memory handler for secure memory should do proper logging
  70.  
  71.   There is no shortage of standard memory, so logging is most likely
  72.   possible.
  73.  
  74. * mpi_print does not use secure memory
  75.   for internal variables.
  76.  
  77. * gcry_mpi_lshift is missing
  78.  
  79. * Add OAEP
  80.  
  81. * gcryptrnd.c
  82.   Requires a test for pth [done] as well as some other tests.
  83.  
  84. * secmem.c
  85.   Check whether the memory block is valid before releasing it and
  86.   print a diagnosic, like glibc does.
  87.  
  88. * threads
  89. ** We need to document fork problems
  90.   In particular that reinitialization is required in random.c
  91.   However, there is no code yet to do it.
  92.  
  93. * Tests
  94.   We need a lot more tests.  Lets keep an ever growing list here.
  95. ** Write tests for the progress function
  96. ** mpitests does no real checks yet.
  97. ** pthreads
  98.   To catch simple errors like the one fixed on 2007-03-16.
  99. ** C++ tests
  100.   We have some code to allow using libgcrypt from C++, so we also
  101.   should have a test case.
  102.  
  103. * Use aliases for symbol instead of the wrappers in visibility.c.
  104.